// 如果自己定义的类没有构造函数，编译器会自动生成一个无参的构造函数
#include <iostream>
#include <string>
int main(){
    using namespace std;
    string a = "123";      // 深拷贝
    string b = a;
    cout<< &a <<endl;
    cout<< &b <<endl;
    // placement new，通过自己申请一块内存进行管理，将new的对象存放到内存中，但在释放时，需要手动调用析构函数释放内存
    return 0;
}
// default copy constructor会将非静态的成员拷贝一份给另一个对象 
// copy assignment operator拷贝赋值运算
// 对于对象中值的赋值应保持谨慎，如果成员变量是一个指针则使用此函数会造成多个对象的指针指向同一块地址，会造成内存泄漏，内存释放时也会发生重复释放的的问题
 